/* Common resource for solipeg and solipeg lite */

#define PSION_SYMBOL            <0x02>
#define UP_ARROW                <0x18>
#define DOWN_ARROW              <0x19>
#define RIGHT_ARROW             <0x1A>
#define LEFT_ARROW              <0x1B>

STRUCT LIB_VER {
    WORD        word ;
}

RESOURCE WSERV_INFO solipeg_accs {
    menbar_id = solipeg_mbar ;
    first_com = O_COM_EXIT ;
    accel = {   'x',
                'n',
                'o',
                's',
                'l',
                'L',
                'p',
                't' } ;
}

RESOURCE MENU_BAR solipeg_mbar {
    items = {
        MENU_BAR_ITEM {
            menu_id = file_menu ;
            mb_item = "File" ;
        },
        MENU_BAR_ITEM {
            menu_id = special_menu ;
            mb_item = "Special" ;
        }
    } ;
}

RESOURCE MENU file_menu {
    items = {
        MENU_ITEM {
            com_id = O_SCM_NEW ;
            mn_item = "New Game" ;
        },
        MENU_ITEM {
            com_id = O_SCM_OPEN ;
            mn_item = "Open Game" ;
        },
        MENU_ITEM {
            com_id = O_SCM_SAVE | BREAK_LINE_FOLLOWS ;
            mn_item = "Save Game" ;
        },
        MENU_ITEM {
            com_id = O_SCM_LIBRARY ;
            mn_item = "Internal Library" ;
        },
        MENU_ITEM {
            com_id = O_SCM_EXTERNAL ;
            mn_item = "External Library" ;
        }
    } ;
}

RESOURCE MENU special_menu {
    items = {
        MENU_ITEM {
            com_id = O_SCM_OPTIONS ;
            mn_item = "Options" ;
        },
        MENU_ITEM {
            com_id = O_SCM_STATISTICS | BREAK_LINE_FOLLOWS ;
            mn_item = "Statistics" ;
        },
        MENU_ITEM {
            com_id = O_COM_EXIT ;
            mn_item = "Exit" ;
        }
    } ;
}

/* W, NW, N, NE, E, SE, S, SW */
RESOURCE STRING rs_jump_str { str = "O()=_;:L" ; }
RESOURCE STRING rs_move_str { str = "o90+-/*l" ; }

RESOURCE STRING rs_defname { str = "\SOLIPEG\GAME.SOL" ; }
RESOURCE STRING rs_def_external { str = "\SOLIPEG\PUZZLIB.SLL" ; }
RESOURCE STRING rs_env { str = "$05$sp1" ; }
RESOURCE STRING rs_title_sound { str = "*cade" ; }
RESOURCE STRING rs_jump_sound { str = "*soli1" ; }
RESOURCE STRING rs_warn_sound { str = "*soli2" ; }
RESOURCE STRING rs_finis_sound { str = "*soli3" ; }
RESOURCE STRING rs_win_sound { str = "*soli4" ; }
RESOURCE STRING rs_libid { str = "SOLL" ; }
RESOURCE LIB_VER rs_minlibver { word = 140 ; }
RESOURCE STRING rs_play { str = "Play" ; }
RESOURCE STRING rs_edit { str = "Edit" ; }
RESOURCE STRING rs_new_game { str = "New Game?" ; }
RESOURCE STRING rs_s3aonly { str = "Series 3a only version" ; }
RESOURCE STRING rs_badfile { str = "Incompatible file format" ; }

RESOURCE HELP_ARRAY rh_main {
    topic = NAME_STRING ;
	topic_id = rt_main ;
}

RESOURCE TOPIC_ARRAY rt_main {
    id_lst = {
        rh_rules,
        rh_options,
        rh_controls,
        rh_library,
        rh_about
    } ;
}

RESOURCE HELP_ARRAY rh_rules {
	topic = "Solipeg Rules" ;
    strlst = {
        STRING { str = "Any marble can be moved, provided it can be jumped over an" ; },
        STRING { str = "adjacent marble.  If playing the diagonal rules, diagonally" ; },
        STRING { str = "adjacent marbles can be jumped.  The marble jumped over is" ; },
        STRING { str = "removed.  The object is to remove every marble but one, and" ; },
        STRING { str = "to leave the last marble in the center of the board." ; }
    } ;
}

RESOURCE HELP_ARRAY rh_options {
    topic = "Solipeg Options" ;
    strlst = {
        STRING { str = "Board Shape: Plain Cross or French Filled-Cross" ; },
        STRING { str = "Rules: Plain " UP_ARROW DOWN_ARROW LEFT_ARROW RIGHT_ARROW " or Allow Diagonal Jumps" ; },
        STRING { str = "Show Moves: Mark movable pieces?" ; },
        STRING { str = "Sound: Sounds enabled? (Put SOLI*.WVE in any \WVE\ directory)" ; },
        STRING { str = "Window: Position the game board as desired" ; }
    } ;
}

RESOURCE HELP_ARRAY rh_controls {
	topic = "Solipeg Controls" ;
    strlst = {
        STRING { str = "The keys: 9, 0, +, o, -, l, *, and / act as a keypad, giving" ; },
        STRING { str = "eight directions of movement.  By holding down shift and" ; },
        STRING { str = "moving, the marble will be made to jump in that direction." ; },
        STRING { str = "" ; },
        STRING { str = "The " UP_ARROW DOWN_ARROW LEFT_ARROW RIGHT_ARROW " keys may also be used." ; },
        STRING { str = "" ; },
        STRING { str = "In edit mode, the space bar toggles pieces on and off."         ; }
    } ;
}

RESOURCE HELP_ARRAY rh_library {
    topic = "Solipeg Library" ;
    strlst = {
        STRING { str = "There is a library of problems built in to Solipeg. These" ; },
        STRING { str = "can be loaded with the Library menu option.  These problems" ; },
        STRING { str = "were taken from the instructions to Puzzle-Peg (1924)." ; },
        STRING { str = "" ; },
        STRING { str = "Some of the problems can only be solved with diagonal moves" ; },
        STRING { str = "The number of diagonals required is indicated in ()." ; },
        STRING { str = "" ; },
        STRING { str = "Individual problems can be saved to disk using Save." ; },
        STRING { str = "" ; },
        STRING { str = "Problems saved with Save (.SOL) can be loaded using Open." ; },
        STRING { str = "" ; },
        STRING { str = "External libraries (.SLL) can be also be used." ; }
    } ;
}

RESOURCE HELP_ARRAY rh_about {
	topic = "About Solipeg" ;
    strlst = {
        STRING { str = NAME_STRING ": Copyright (C) 1993, 1994 J Cade Roux" ; },
        STRING { str = "<73733.1014@compuserve.com>" ; },
        STRING { str = "" ; },
        STRING { str = "Free software under the terms of the" ; },
        STRING { str = "GNU General Public License." ; },
        STRING { str = "" ; },
        STRING { str = "Press <Ctrl>-<Help> for index." ; }
    } ;
}

RESOURCE DIALOG options_dialog {
    title = "Options" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_CHLIST ;
            prompt = "Board Shape" ;
            info = CHLIST {
                rid = board_shape ;
            } ;
        },
        CONTROL {
            class = C_CHLIST ;
            prompt = "Rules" ;
            info = CHLIST {
                rid = board_rules ;
            } ;
        },
        CONTROL {
            class = C_CHLIST ;
            prompt = "Show Moves" ;
            info = CHLIST {
                rid = -SYS_NO_YES ;
            } ;
        },
        CONTROL {
            class = C_CHLIST ;
            prompt = "Sound" ;
            info = CHLIST {
                rid = -SYS_OFFON_MENU ;
            } ;
        },
        CONTROL {
            class = C_CHLIST ;
            prompt = "Window" ;
            info = CHLIST {
                rid = chlist_window ;
            } ;
        }
    } ;
}

RESOURCE MENU board_shape {
    items = {
        CHOICE_ITEM { str = "Plain" ; },
        CHOICE_ITEM { str = "French" ; }
    } ;
}

RESOURCE MENU board_rules {
    items = {
        CHOICE_ITEM { str = "Plain" ; },
        CHOICE_ITEM { str = "Diagonal" ; }
    } ;
}

RESOURCE MENU chlist_window {
    items = {
        CHOICE_ITEM { str = "Left" ; },
        CHOICE_ITEM { str = "Center" ; },
        CHOICE_ITEM { str = "Right" ; }
    } ;
}

RESOURCE DIALOG open_dialog {
    title = "Open Game" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_FNSELWN ;
            flags = DLGBOX_ITEM_NEEDS_PACK ;
            info = FNSELWN {
                fname = "" ;
            } ;
        }
    } ;
}

RESOURCE DIALOG save_dialog {
    title = "Save Game" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_FNEDIT ;
            flags = DLGBOX_ITEM_NEEDS_PACK ;
            info = FNEDIT {
                fname = "" ;
            } ;
        }
    } ;
}

RESOURCE DIALOG open_external_dialog {
    title = "External Library" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_FNSELWN ;
            flags = DLGBOX_ITEM_NEEDS_PACK ;
            info = FNSELWN {
                fname = "" ;
            } ;
        }
    } ;
}

RESOURCE DIALOG library_dialog {
    title = "Internal Library" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_CHLIST ;
            prompt = "Problem" ;
            info = CHLIST {
                rid = sol_games ;
            } ;
        }
    } ;
}

RESOURCE DIALOG external_library_dialog {
    title = "External Library" ;
    flags = DLGBOX_NOTIFY_ENTER | DLGBOX_RBUF_FILLED ;
    controls = {
        CONTROL {
            class = C_CHLIST ;
            prompt = "Problem" ;
            info = CHLIST {
                rid = sol_default_games ;
            } ;
        }
    } ;
}

RESOURCE DIALOG stats_dialog {
    title = "Statistics" ;
    controls = {
        CONTROL {
            class = C_TEXTWIN ;
            flags = DLGBOX_ITEM_DEAD ;
            prompt = "# games played:" ;
            info = TXTMESS {
                flags = IN_TEXTWIN_AL_RIGHT ;
            } ;
        },
        CONTROL {
            class = C_TEXTWIN ;
            flags = DLGBOX_ITEM_DEAD ;
            prompt = "Avg. pegs left:" ;
            info = TXTMESS {
                flags = IN_TEXTWIN_AL_RIGHT ;
            } ;
        },
        CONTROL {
            class = C_TEXTWIN ;
            flags = DLGBOX_ITEM_DEAD ;
            prompt = "Last 5 games:" ;
            info = TXTMESS {
                flags = IN_TEXTWIN_AL_RIGHT ;
            } ;
        }
    } ;
}

RESOURCE MENU sol_default_games {
    items = {
        CHOICE_ITEM { str = "" ; }
    } ;
}


